`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: 
// Engineer: 
// 
// Create Date: 2022/03/16 20:15:48
// Design Name: 
// Module Name: InstrMem
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//////////////////////////////////////////////////////////////////////////////////


module InstrMem(
input logic [31:0] InstrAddr,                //指令地址，4字节对齐
output logic [31:0] Instr                    //读出的指令
    );
parameter  N = 64;
logic [31:0] IMEM [0:N-1];                   //指令存储器
//
initial begin
    IMEM[0]=32'h00410093;                           //指令初始化
    IMEM[1]=32'h00102423;
    IMEM[2]=32'h0040a283;
    IMEM[3]=32'h0000c437;
    IMEM[4]=32'h0000c317;
    IMEM[5]=32'h00508133;
    IMEM[6]=32'h00508463;
    IMEM[7]=32'h005080b3;
    IMEM[8]=32'h00c000ef;
    IMEM[9]=32'h005080b3;
    IMEM[10]=32'h005080b3;
    IMEM[11]=32'h40508433;
    IMEM[12]=32'h00241513;
    IMEM[13]=32'h40155633;
    IMEM[14]=32'h401003b3;
    IMEM[15]=32'h4013d393;
    IMEM[16]=32'h04428867;
    IMEM[17]=32'h001080b3;
    IMEM[18]=32'h00187813;
end
//读指令
assign Instr=IMEM[InstrAddr[31:2]];

endmodule
